package com.galen.manual.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

@Data
@Schema(description = "结算单创建请求")
public class SettlementCreateDTO {

    @NotNull(message = "用户ID不能为空")
    @Schema(description = "用户ID", required = true)
    private Long userId;

    @NotNull(message = "结算周期开始时间不能为空")
    @Schema(description = "结算周期开始时间", required = true)
    private LocalDateTime settlementPeriodStart;

    @NotNull(message = "结算周期结束时间不能为空")
    @Schema(description = "结算周期结束时间", required = true)
    private LocalDateTime settlementPeriodEnd;

    @Schema(description = "任务数量")
    private Integer taskCount;

    @Schema(description = "总数量")
    private Integer totalQuantity;

    @Schema(description = "总金额")
    private java.math.BigDecimal totalAmount;

    @Schema(description = "奖励金额")
    private java.math.BigDecimal bonusAmount;

    @Schema(description = "扣款金额")
    private java.math.BigDecimal penaltyAmount;

    @Schema(description = "实际结算金额")
    private java.math.BigDecimal finalAmount;

    @Schema(description = "支付方式")
    private String paymentMethod;

    @Schema(description = "备注")
    private String remark;
}